      module mo_nln_matrix
      use shr_kind_mod, only : r8 => shr_kind_r8
      private
      public :: nlnmat
      contains
      subroutine nlnmat01( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(716) = -(rxt(42)*y(2) + rxt(50)*y(12) + rxt(51)*y(13) + rxt(60)*y(5) &
                      + rxt(62)*y(6) + rxt(91)*y(22) + rxt(116)*y(33) + rxt(147)*y(50) &
                      + rxt(159)*y(53) + rxt(161)*y(54) + rxt(194)*y(63))
         mat(223) = -rxt(42)*y(1)
         mat(636) = -rxt(50)*y(1)
         mat(686) = -rxt(51)*y(1)
         mat(561) = -rxt(60)*y(1)
         mat(765) = -rxt(62)*y(1)
         mat(112) = -rxt(91)*y(1)
         mat(378) = -rxt(116)*y(1)
         mat(363) = -rxt(147)*y(1)
         mat(469) = -rxt(159)*y(1)
         mat(427) = -rxt(161)*y(1)
         mat(256) = -rxt(194)*y(1)
         mat(716) = mat(716) + .100_r8*rxt(147)*y(50) + .200_r8*rxt(159)*y(53) &
                      + .200_r8*rxt(161)*y(54)
         mat(686) = mat(686) + .250_r8*rxt(105)*y(31) + .250_r8*rxt(171)*y(57)
         mat(820) = .250_r8*rxt(105)*y(13)
         mat(363) = mat(363) + .100_r8*rxt(147)*y(1)
         mat(469) = mat(469) + .200_r8*rxt(159)*y(1)
         mat(427) = mat(427) + .200_r8*rxt(161)*y(1)
         mat(521) = .250_r8*rxt(171)*y(13)
         mat(219) = -(rxt(42)*y(1) + rxt(48)*y(12) + rxt(49)*y(13) + rxt(61)*y(6))
         mat(696) = -rxt(42)*y(2)
         mat(605) = -rxt(48)*y(2)
         mat(660) = -rxt(49)*y(2)
         mat(756) = -rxt(61)*y(2)
         mat(605) = mat(605) + 2.000_r8*rxt(55)*y(12)
         mat(558) = -(rxt(59)*y(13) + rxt(60)*y(1) + rxt(68)*y(7) + rxt(74)*y(17) &
                      + rxt(87)*y(103) + rxt(92)*y(24) + rxt(96)*y(28) + rxt(103) &
                      *y(31) + rxt(118)*y(37) + rxt(122)*y(35) + rxt(127)*y(40) &
                      + rxt(136)*y(43) + rxt(138)*y(45) + rxt(143)*y(48) + rxt(148) &
                      *y(51) + rxt(155)*y(76) + (rxt(162) + rxt(163)) * y(55) + rxt(169) &
                      *y(57) + rxt(180)*y(61) + rxt(190)*y(68) + rxt(196)*y(64))
         mat(683) = -rxt(59)*y(5)
         mat(713) = -rxt(60)*y(5)
         mat(795) = -rxt(68)*y(5)
         mat(742) = -rxt(74)*y(5)
         mat(159) = -rxt(87)*y(5)
         mat(143) = -rxt(92)*y(5)
         mat(324) = -rxt(96)*y(5)
         mat(817) = -rxt(103)*y(5)
         mat(283) = -rxt(118)*y(5)
         mat(335) = -rxt(122)*y(5)
         mat(408) = -rxt(127)*y(5)
         mat(93) = -rxt(136)*y(5)
         mat(273) = -rxt(138)*y(5)
         mat(312) = -rxt(143)*y(5)
         mat(503) = -rxt(148)*y(5)
         mat(297) = -rxt(155)*y(5)
         mat(484) = -(rxt(162) + rxt(163)) * y(5)
         mat(518) = -rxt(169)*y(5)
         mat(452) = -rxt(180)*y(5)
         mat(198) = -rxt(190)*y(5)
         mat(396) = -rxt(196)*y(5)
         mat(220) = rxt(61)*y(6)
         mat(762) = rxt(61)*y(2)
         mat(767) = -(rxt(61)*y(2) + rxt(62)*y(1) + rxt(64)*y(7) + rxt(66)*y(12) &
                      + rxt(69)*y(13) + rxt(104)*y(31) + rxt(175)*y(57) + rxt(189) &
                      *y(70))
         mat(224) = -rxt(61)*y(6)
         mat(718) = -rxt(62)*y(6)
         mat(800) = -rxt(64)*y(6)
         mat(638) = -rxt(66)*y(6)
         mat(688) = -rxt(69)*y(6)
         mat(822) = -rxt(104)*y(6)
         mat(523) = -rxt(175)*y(6)
         mat(62) = -rxt(189)*y(6)
         mat(718) = mat(718) + rxt(60)*y(5)
         mat(563) = rxt(60)*y(1) + 2.000_r8*rxt(68)*y(7) + rxt(59)*y(13) + rxt(74) &
                      *y(17) + rxt(92)*y(24) + rxt(96)*y(28) + rxt(103)*y(31) &
                      + rxt(122)*y(35) + rxt(118)*y(37) + rxt(127)*y(40) + rxt(136) &
                      *y(43) + .900_r8*rxt(143)*y(48) + rxt(138)*y(45) &
                      + .920_r8*rxt(148)*y(51) + rxt(162)*y(55) + rxt(169)*y(57) &
                      + rxt(180)*y(61) + rxt(196)*y(64) + .900_r8*rxt(190)*y(68) &
                      + 1.206_r8*rxt(155)*y(76) + rxt(87)*y(103)
         mat(767) = mat(767) + .700_r8*rxt(189)*y(70)
         mat(800) = mat(800) + 2.000_r8*rxt(68)*y(5) + rxt(63)*y(13) + rxt(149)*y(51) &
                      + rxt(164)*y(55) + rxt(170)*y(57) + rxt(181)*y(61) + rxt(195) &
                      *y(63) + 1.206_r8*rxt(156)*y(76) + rxt(178)*y(77)
         mat(124) = rxt(70)*y(12)
         mat(638) = mat(638) + rxt(70)*y(9) + rxt(131)*y(74) + .400_r8*rxt(177)*y(77)
         mat(688) = mat(688) + rxt(59)*y(5) + rxt(63)*y(7) + .206_r8*rxt(157)*y(76)
         mat(747) = rxt(74)*y(5)
         mat(145) = rxt(92)*y(5)
         mat(328) = rxt(96)*y(5)
         mat(822) = mat(822) + rxt(103)*y(5)
         mat(339) = rxt(122)*y(5)
         mat(286) = rxt(118)*y(5)
         mat(412) = rxt(127)*y(5)
         mat(95) = rxt(136)*y(5)
         mat(316) = .900_r8*rxt(143)*y(5)
         mat(276) = rxt(138)*y(5)
         mat(508) = .920_r8*rxt(148)*y(5) + rxt(149)*y(7)
         mat(488) = rxt(162)*y(5) + rxt(164)*y(7)
         mat(523) = mat(523) + rxt(169)*y(5) + rxt(170)*y(7)
         mat(456) = rxt(180)*y(5) + rxt(181)*y(7)
         mat(257) = rxt(195)*y(7)
         mat(400) = rxt(196)*y(5)
         mat(201) = .900_r8*rxt(190)*y(5)
         mat(62) = mat(62) + .700_r8*rxt(189)*y(6)
         mat(155) = rxt(131)*y(12)
         mat(299) = 1.206_r8*rxt(155)*y(5) + 1.206_r8*rxt(156)*y(7) + .206_r8*rxt(157) &
                      *y(13)
         mat(347) = rxt(178)*y(7) + .400_r8*rxt(177)*y(12)
         mat(162) = rxt(87)*y(5)
         mat(801) = -(rxt(63)*y(13) + rxt(64)*y(6) + rxt(68)*y(5) + rxt(79)*y(19) &
                      + rxt(102)*y(30) + rxt(117)*y(33) + rxt(133)*y(60) + rxt(149) &
                      *y(51) + rxt(154)*y(50) + rxt(156)*y(76) + rxt(164)*y(55) &
                      + rxt(170)*y(57) + rxt(178)*y(77) + rxt(181)*y(61) + rxt(195) &
                      *y(63) + rxt(207)*y(84))
         mat(689) = -rxt(63)*y(7)
         mat(768) = -rxt(64)*y(7)
         mat(564) = -rxt(68)*y(7)
         mat(443) = -rxt(79)*y(7)
         mat(388) = -rxt(102)*y(7)
         mat(381) = -rxt(117)*y(7)
         mat(434) = -rxt(133)*y(7)
         mat(509) = -rxt(149)*y(7)
         mat(366) = -rxt(154)*y(7)
         mat(300) = -rxt(156)*y(7)
         mat(489) = -rxt(164)*y(7)
         mat(524) = -rxt(170)*y(7)
         mat(348) = -rxt(178)*y(7)
         mat(457) = -rxt(181)*y(7)
         mat(258) = -rxt(195)*y(7)
         mat(79) = -rxt(207)*y(7)
         mat(719) = rxt(62)*y(6)
         mat(768) = mat(768) + rxt(62)*y(1)
         mat(218) = rxt(67)*y(12)
         mat(639) = rxt(67)*y(8) + rxt(108)*y(73) + .500_r8*rxt(141)*y(75)
         mat(213) = rxt(108)*y(12)
         mat(232) = .500_r8*rxt(141)*y(12)
         mat(215) = -(rxt(67)*y(12))
         mat(604) = -rxt(67)*y(8)
         mat(755) = rxt(66)*y(12)
         mat(776) = rxt(79)*y(19) + rxt(102)*y(30) + rxt(133)*y(60) + rxt(207)*y(84)
         mat(604) = mat(604) + rxt(66)*y(6)
         mat(437) = rxt(79)*y(7)
         mat(382) = rxt(102)*y(7)
         mat(429) = rxt(133)*y(7)
         mat(76) = rxt(207)*y(7)
         mat(121) = -(rxt(70)*y(12))
         mat(588) = -rxt(70)*y(9)
         mat(752) = rxt(69)*y(13)
         mat(648) = rxt(69)*y(6)
         mat(751) = rxt(64)*y(7)
         mat(771) = rxt(64)*y(6)
         mat(634) = -(rxt(48)*y(2) + rxt(50)*y(1) + rxt(53)*y(14) + rxt(54)*y(13) &
                      + (4._r8*rxt(55) + 4._r8*rxt(56)) * y(12) + rxt(66)*y(6) + rxt(67) &
                      *y(8) + rxt(70)*y(9) + rxt(78)*y(18) + rxt(80)*y(19) + rxt(83) &
                      *y(20) + rxt(84)*y(102) + rxt(89)*y(101) + rxt(90)*y(22) + rxt(95) &
                      *y(27) + rxt(100)*y(29) + rxt(101)*y(30) + rxt(107)*y(32) &
                      + rxt(108)*y(73) + rxt(111)*y(26) + rxt(112)*y(72) + rxt(113) &
                      *y(25) + rxt(114)*y(21) + rxt(115)*y(33) + rxt(120)*y(38) &
                      + rxt(121)*y(34) + rxt(125)*y(36) + rxt(126)*y(39) + rxt(130) &
                      *y(41) + rxt(131)*y(74) + rxt(132)*y(60) + rxt(134)*y(59) &
                      + rxt(135)*y(42) + rxt(137)*y(44) + rxt(140)*y(46) + rxt(141) &
                      *y(75) + rxt(142)*y(47) + rxt(145)*y(49) + rxt(146)*y(50) &
                      + rxt(151)*y(52) + rxt(158)*y(53) + rxt(160)*y(54) + rxt(168) &
                      *y(56) + rxt(177)*y(77) + rxt(179)*y(58) + rxt(185)*y(62) &
                      + rxt(187)*y(66) + rxt(188)*y(67) + rxt(192)*y(69) + rxt(193) &
                      *y(63) + rxt(198)*y(65) + rxt(204)*y(83) + (rxt(205) + rxt(206) &
                      ) * y(84) + rxt(208)*y(86))
         mat(221) = -rxt(48)*y(12)
         mat(714) = -rxt(50)*y(12)
         mat(50) = -rxt(53)*y(12)
         mat(684) = -rxt(54)*y(12)
         mat(763) = -rxt(66)*y(12)
         mat(216) = -rxt(67)*y(12)
         mat(122) = -rxt(70)*y(12)
         mat(133) = -rxt(78)*y(12)
         mat(440) = -rxt(80)*y(12)
         mat(243) = -rxt(83)*y(12)
         mat(114) = -rxt(84)*y(12)
         mat(47) = -rxt(89)*y(12)
         mat(110) = -rxt(90)*y(12)
         mat(23) = -rxt(95)*y(12)
         mat(129) = -rxt(100)*y(12)
         mat(384) = -rxt(101)*y(12)
         mat(165) = -rxt(107)*y(12)
         mat(210) = -rxt(108)*y(12)
         mat(248) = -rxt(111)*y(12)
         mat(191) = -rxt(112)*y(12)
         mat(169) = -rxt(113)*y(12)
         mat(82) = -rxt(114)*y(12)
         mat(376) = -rxt(115)*y(12)
         mat(181) = -rxt(120)*y(12)
         mat(26) = -rxt(121)*y(12)
         mat(119) = -rxt(125)*y(12)
         mat(289) = -rxt(126)*y(12)
         mat(87) = -rxt(130)*y(12)
         mat(154) = -rxt(131)*y(12)
         mat(431) = -rxt(132)*y(12)
         mat(417) = -rxt(134)*y(12)
         mat(29) = -rxt(135)*y(12)
         mat(174) = -rxt(137)*y(12)
         mat(99) = -rxt(140)*y(12)
         mat(229) = -rxt(141)*y(12)
         mat(32) = -rxt(142)*y(12)
         mat(267) = -rxt(145)*y(12)
         mat(361) = -rxt(146)*y(12)
         mat(239) = -rxt(151)*y(12)
         mat(467) = -rxt(158)*y(12)
         mat(425) = -rxt(160)*y(12)
         mat(104) = -rxt(168)*y(12)
         mat(345) = -rxt(177)*y(12)
         mat(138) = -rxt(179)*y(12)
         mat(58) = -rxt(185)*y(12)
         mat(39) = -rxt(187)*y(12)
         mat(43) = -rxt(188)*y(12)
         mat(151) = -rxt(192)*y(12)
         mat(254) = -rxt(193)*y(12)
         mat(188) = -rxt(198)*y(12)
         mat(35) = -rxt(204)*y(12)
         mat(77) = -(rxt(205) + rxt(206)) * y(12)
         mat(20) = -rxt(208)*y(12)
         mat(714) = mat(714) + rxt(51)*y(13) + .120_r8*rxt(91)*y(22) &
                      + .330_r8*rxt(116)*y(33) + .270_r8*rxt(147)*y(50) &
                      + .080_r8*rxt(159)*y(53) + .215_r8*rxt(161)*y(54) &
                      + .700_r8*rxt(194)*y(63)
         mat(221) = mat(221) + rxt(49)*y(13)
         mat(559) = rxt(59)*y(13)
         mat(796) = rxt(63)*y(13)
         mat(634) = mat(634) + .300_r8*rxt(78)*y(18) + .500_r8*rxt(100)*y(29) &
                      + .500_r8*rxt(120)*y(38) + .100_r8*rxt(168)*y(56) &
                      + .650_r8*rxt(89)*y(101)
         mat(684) = mat(684) + rxt(51)*y(1) + rxt(49)*y(2) + rxt(59)*y(5) + rxt(63) &
                      *y(7)
         mat(133) = mat(133) + .300_r8*rxt(78)*y(12)
         mat(110) = mat(110) + .120_r8*rxt(91)*y(1)
         mat(129) = mat(129) + .500_r8*rxt(100)*y(12)
         mat(376) = mat(376) + .330_r8*rxt(116)*y(1)
         mat(181) = mat(181) + .500_r8*rxt(120)*y(12)
         mat(361) = mat(361) + .270_r8*rxt(147)*y(1)
         mat(467) = mat(467) + .080_r8*rxt(159)*y(1)
         mat(425) = mat(425) + .215_r8*rxt(161)*y(1)
         mat(104) = mat(104) + .100_r8*rxt(168)*y(12)
         mat(254) = mat(254) + .700_r8*rxt(194)*y(1)
         mat(47) = mat(47) + .650_r8*rxt(89)*y(12)
      end subroutine nlnmat01
      subroutine nlnmat02( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(685) = -(rxt(49)*y(2) + rxt(51)*y(1) + 4._r8*rxt(52)*y(13) + rxt(54) &
                      *y(12) + rxt(59)*y(5) + rxt(63)*y(7) + rxt(69)*y(6) + rxt(77) &
                      *y(17) + rxt(85)*y(19) + rxt(88)*y(103) + rxt(97)*y(28) + rxt(105) &
                      *y(31) + rxt(119)*y(37) + rxt(123)*y(35) + rxt(128)*y(40) &
                      + rxt(139)*y(45) + rxt(144)*y(48) + rxt(150)*y(51) + rxt(157) &
                      *y(76) + rxt(165)*y(55) + rxt(171)*y(57) + rxt(182)*y(61) &
                      + rxt(191)*y(68) + rxt(197)*y(64))
         mat(222) = -rxt(49)*y(13)
         mat(715) = -rxt(51)*y(13)
         mat(635) = -rxt(54)*y(13)
         mat(560) = -rxt(59)*y(13)
         mat(797) = -rxt(63)*y(13)
         mat(764) = -rxt(69)*y(13)
         mat(744) = -rxt(77)*y(13)
         mat(441) = -rxt(85)*y(13)
         mat(161) = -rxt(88)*y(13)
         mat(326) = -rxt(97)*y(13)
         mat(819) = -rxt(105)*y(13)
         mat(285) = -rxt(119)*y(13)
         mat(337) = -rxt(123)*y(13)
         mat(410) = -rxt(128)*y(13)
         mat(275) = -rxt(139)*y(13)
         mat(314) = -rxt(144)*y(13)
         mat(505) = -rxt(150)*y(13)
         mat(298) = -rxt(157)*y(13)
         mat(486) = -rxt(165)*y(13)
         mat(520) = -rxt(171)*y(13)
         mat(454) = -rxt(182)*y(13)
         mat(200) = -rxt(191)*y(13)
         mat(398) = -rxt(197)*y(13)
         mat(715) = mat(715) + rxt(50)*y(12) + .120_r8*rxt(91)*y(22) &
                      + .190_r8*rxt(116)*y(33) + .060_r8*rxt(147)*y(50) &
                      + .060_r8*rxt(159)*y(53) + .275_r8*rxt(161)*y(54) + rxt(194) &
                      *y(63)
         mat(222) = mat(222) + rxt(48)*y(12)
         mat(560) = mat(560) + rxt(74)*y(17) + rxt(96)*y(28) + rxt(122)*y(35) &
                      + rxt(118)*y(37) + rxt(136)*y(43) + .900_r8*rxt(143)*y(48) &
                      + rxt(148)*y(51) + .470_r8*rxt(162)*y(55) + rxt(180)*y(61) &
                      + rxt(196)*y(64) + .900_r8*rxt(190)*y(68) + .794_r8*rxt(155) &
                      *y(76) + rxt(87)*y(103)
         mat(764) = mat(764) + .700_r8*rxt(189)*y(70)
         mat(797) = mat(797) + rxt(79)*y(19) + rxt(149)*y(51) + .470_r8*rxt(164)*y(55) &
                      + rxt(181)*y(61) + .794_r8*rxt(156)*y(76) + rxt(178)*y(77)
         mat(635) = mat(635) + rxt(50)*y(1) + rxt(48)*y(2) + rxt(53)*y(14) + rxt(80) &
                      *y(19) + rxt(83)*y(20) + rxt(114)*y(21) + .250_r8*rxt(90)*y(22) &
                      + rxt(111)*y(26) + .200_r8*rxt(168)*y(56) + rxt(134)*y(59) &
                      + .250_r8*rxt(187)*y(66) + rxt(112)*y(72) + .500_r8*rxt(141) &
                      *y(75) + rxt(177)*y(77) + .500_r8*rxt(206)*y(84) &
                      + .350_r8*rxt(89)*y(101) + rxt(84)*y(102)
         mat(685) = mat(685) + .794_r8*rxt(157)*y(76)
         mat(51) = rxt(53)*y(12)
         mat(744) = mat(744) + rxt(74)*y(5) + 4.000_r8*rxt(75)*y(17) + rxt(98)*y(28) &
                      + .900_r8*rxt(106)*y(31) + rxt(124)*y(35) + .300_r8*rxt(129) &
                      *y(40) + rxt(152)*y(51) + .730_r8*rxt(166)*y(55) + rxt(172) &
                      *y(57) + .800_r8*rxt(183)*y(61)
         mat(441) = mat(441) + rxt(79)*y(7) + rxt(80)*y(12)
         mat(244) = rxt(83)*y(12)
         mat(83) = rxt(114)*y(12)
         mat(111) = .120_r8*rxt(91)*y(1) + .250_r8*rxt(90)*y(12)
         mat(249) = rxt(111)*y(12)
         mat(326) = mat(326) + rxt(96)*y(5) + rxt(98)*y(17) + 2.400_r8*rxt(99)*y(28)
         mat(819) = mat(819) + .900_r8*rxt(106)*y(17) + rxt(153)*y(51) &
                      + .470_r8*rxt(167)*y(55) + rxt(184)*y(61)
         mat(377) = .190_r8*rxt(116)*y(1)
         mat(337) = mat(337) + rxt(122)*y(5) + rxt(124)*y(17)
         mat(285) = mat(285) + rxt(118)*y(5)
         mat(410) = mat(410) + .300_r8*rxt(129)*y(17)
         mat(94) = rxt(136)*y(5)
         mat(314) = mat(314) + .900_r8*rxt(143)*y(5)
         mat(362) = .060_r8*rxt(147)*y(1)
         mat(505) = mat(505) + rxt(148)*y(5) + rxt(149)*y(7) + rxt(152)*y(17) &
                      + rxt(153)*y(31)
         mat(468) = .060_r8*rxt(159)*y(1)
         mat(426) = .275_r8*rxt(161)*y(1)
         mat(486) = mat(486) + .470_r8*rxt(162)*y(5) + .470_r8*rxt(164)*y(7) &
                      + .730_r8*rxt(166)*y(17) + .470_r8*rxt(167)*y(31)
         mat(105) = .200_r8*rxt(168)*y(12)
         mat(520) = mat(520) + rxt(172)*y(17)
         mat(418) = rxt(134)*y(12)
         mat(454) = mat(454) + rxt(180)*y(5) + rxt(181)*y(7) + .800_r8*rxt(183)*y(17) &
                      + rxt(184)*y(31)
         mat(255) = rxt(194)*y(1)
         mat(398) = mat(398) + rxt(196)*y(5)
         mat(40) = .250_r8*rxt(187)*y(12)
         mat(200) = mat(200) + .900_r8*rxt(190)*y(5)
         mat(61) = .700_r8*rxt(189)*y(6)
         mat(192) = rxt(112)*y(12)
         mat(230) = .500_r8*rxt(141)*y(12)
         mat(298) = mat(298) + .794_r8*rxt(155)*y(5) + .794_r8*rxt(156)*y(7) &
                      + .794_r8*rxt(157)*y(13)
         mat(346) = rxt(178)*y(7) + rxt(177)*y(12)
         mat(78) = .500_r8*rxt(206)*y(12)
         mat(48) = .350_r8*rxt(89)*y(12)
         mat(115) = rxt(84)*y(12)
         mat(161) = mat(161) + rxt(87)*y(5)
         mat(49) = -(rxt(53)*y(12))
         mat(576) = -rxt(53)*y(14)
         mat(576) = mat(576) + 2.000_r8*rxt(56)*y(12)
         mat(641) = 2.000_r8*rxt(52)*y(13)
         mat(746) = -(rxt(74)*y(5) + (4._r8*rxt(75) + 4._r8*rxt(76)) * y(17) + rxt(77) &
                      *y(13) + rxt(98)*y(28) + rxt(106)*y(31) + rxt(124)*y(35) + rxt(129) &
                      *y(40) + rxt(152)*y(51) + rxt(166)*y(55) + rxt(172)*y(57) &
                      + rxt(183)*y(61))
         mat(562) = -rxt(74)*y(17)
         mat(687) = -rxt(77)*y(17)
         mat(327) = -rxt(98)*y(17)
         mat(821) = -rxt(106)*y(17)
         mat(338) = -rxt(124)*y(17)
         mat(411) = -rxt(129)*y(17)
         mat(507) = -rxt(152)*y(17)
         mat(487) = -rxt(166)*y(17)
         mat(522) = -rxt(172)*y(17)
         mat(455) = -rxt(183)*y(17)
         mat(717) = .310_r8*rxt(116)*y(33)
         mat(562) = mat(562) + rxt(103)*y(31)
         mat(637) = .700_r8*rxt(78)*y(18) + rxt(113)*y(25)
         mat(746) = mat(746) + .900_r8*rxt(106)*y(31)
         mat(135) = .700_r8*rxt(78)*y(12)
         mat(170) = rxt(113)*y(12)
         mat(821) = mat(821) + rxt(103)*y(5) + .900_r8*rxt(106)*y(17) &
                      + 4.000_r8*rxt(110)*y(31) + rxt(153)*y(51) + rxt(167)*y(55) &
                      + rxt(173)*y(57) + rxt(184)*y(61)
         mat(379) = .310_r8*rxt(116)*y(1)
         mat(507) = mat(507) + rxt(153)*y(31)
         mat(487) = mat(487) + rxt(167)*y(31)
         mat(522) = mat(522) + rxt(173)*y(31)
         mat(455) = mat(455) + rxt(184)*y(31)
         mat(131) = -(rxt(78)*y(12))
         mat(590) = -rxt(78)*y(18)
         mat(650) = rxt(77)*y(17)
         mat(722) = rxt(77)*y(13)
         mat(438) = -(rxt(79)*y(7) + rxt(80)*y(12) + rxt(85)*y(13))
         mat(789) = -rxt(79)*y(19)
         mat(627) = -rxt(80)*y(19)
         mat(677) = -rxt(85)*y(19)
         mat(707) = rxt(91)*y(22) + .540_r8*rxt(116)*y(33) + .600_r8*rxt(147)*y(50) &
                      + .800_r8*rxt(159)*y(53) + .700_r8*rxt(161)*y(54)
         mat(552) = rxt(74)*y(17) + rxt(118)*y(37) + rxt(127)*y(40) + .500_r8*rxt(136) &
                      *y(43) + .100_r8*rxt(143)*y(48) + .550_r8*rxt(148)*y(51) &
                      + .250_r8*rxt(162)*y(55) + rxt(169)*y(57) + .072_r8*rxt(155) &
                      *y(76)
         mat(789) = mat(789) + .600_r8*rxt(149)*y(51) + .250_r8*rxt(164)*y(55) &
                      + rxt(170)*y(57) + .072_r8*rxt(156)*y(76)
         mat(627) = mat(627) + .300_r8*rxt(78)*y(18) + rxt(83)*y(20) + .500_r8*rxt(90) &
                      *y(22) + .800_r8*rxt(111)*y(26) + .500_r8*rxt(107)*y(32) &
                      + rxt(108)*y(73) + .500_r8*rxt(141)*y(75)
         mat(677) = mat(677) + .008_r8*rxt(157)*y(76)
         mat(736) = rxt(74)*y(5) + (4.000_r8*rxt(75)+2.000_r8*rxt(76))*y(17) &
                      + .700_r8*rxt(98)*y(28) + rxt(106)*y(31) + rxt(124)*y(35) &
                      + .800_r8*rxt(129)*y(40) + 1.200_r8*rxt(152)*y(51) &
                      + .880_r8*rxt(166)*y(55) + 2.000_r8*rxt(172)*y(57) &
                      + .700_r8*rxt(183)*y(61)
         mat(132) = .300_r8*rxt(78)*y(12)
         mat(242) = rxt(83)*y(12)
         mat(109) = rxt(91)*y(1) + .500_r8*rxt(90)*y(12)
         mat(247) = .800_r8*rxt(111)*y(12)
         mat(323) = .700_r8*rxt(98)*y(17)
         mat(811) = rxt(106)*y(17) + .600_r8*rxt(153)*y(51) + .250_r8*rxt(167)*y(55) &
                      + rxt(173)*y(57)
         mat(164) = .500_r8*rxt(107)*y(12)
         mat(374) = .540_r8*rxt(116)*y(1)
         mat(334) = rxt(124)*y(17)
         mat(282) = rxt(118)*y(5)
         mat(407) = rxt(127)*y(5) + .800_r8*rxt(129)*y(17)
         mat(92) = .500_r8*rxt(136)*y(5)
         mat(311) = .100_r8*rxt(143)*y(5)
         mat(355) = .600_r8*rxt(147)*y(1)
         mat(497) = .550_r8*rxt(148)*y(5) + .600_r8*rxt(149)*y(7) + 1.200_r8*rxt(152) &
                      *y(17) + .600_r8*rxt(153)*y(31)
         mat(463) = .800_r8*rxt(159)*y(1)
         mat(422) = .700_r8*rxt(161)*y(1)
         mat(480) = .250_r8*rxt(162)*y(5) + .250_r8*rxt(164)*y(7) + .880_r8*rxt(166) &
                      *y(17) + .250_r8*rxt(167)*y(31)
         mat(516) = rxt(169)*y(5) + rxt(170)*y(7) + 2.000_r8*rxt(172)*y(17) + rxt(173) &
                      *y(31) + 4.000_r8*rxt(174)*y(57)
         mat(450) = .700_r8*rxt(183)*y(17)
         mat(209) = rxt(108)*y(12)
         mat(227) = .500_r8*rxt(141)*y(12)
         mat(295) = .072_r8*rxt(155)*y(5) + .072_r8*rxt(156)*y(7) + .008_r8*rxt(157) &
                      *y(13)
         mat(241) = -(rxt(83)*y(12))
         mat(608) = -rxt(83)*y(20)
         mat(726) = 2.000_r8*rxt(76)*y(17) + .300_r8*rxt(98)*y(28) + .500_r8*rxt(129) &
                      *y(40) + .250_r8*rxt(152)*y(51) + .250_r8*rxt(166)*y(55) &
                      + .300_r8*rxt(183)*y(61)
         mat(320) = .300_r8*rxt(98)*y(17)
         mat(403) = .500_r8*rxt(129)*y(17)
         mat(493) = .250_r8*rxt(152)*y(17)
         mat(475) = .250_r8*rxt(166)*y(17)
         mat(446) = .300_r8*rxt(183)*y(17)
         mat(80) = -(rxt(114)*y(12))
         mat(580) = -rxt(114)*y(21)
         mat(721) = .200_r8*rxt(98)*y(28)
         mat(318) = .200_r8*rxt(98)*y(17) + .800_r8*rxt(99)*y(28)
         mat(106) = -(rxt(90)*y(12) + rxt(91)*y(1))
         mat(585) = -rxt(90)*y(22)
         mat(692) = -rxt(91)*y(22)
         mat(526) = rxt(92)*y(24)
         mat(139) = rxt(92)*y(5)
         mat(140) = -(rxt(92)*y(5))
         mat(530) = -rxt(92)*y(24)
         mat(592) = .750_r8*rxt(90)*y(22)
         mat(108) = .750_r8*rxt(90)*y(12)
      end subroutine nlnmat02
      subroutine nlnmat03( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(168) = -(rxt(113)*y(12))
         mat(596) = -rxt(113)*y(25)
         mat(695) = .250_r8*rxt(116)*y(33) + .200_r8*rxt(147)*y(50)
         mat(654) = .250_r8*rxt(105)*y(31) + .250_r8*rxt(171)*y(57)
         mat(724) = .100_r8*rxt(106)*y(31)
         mat(805) = .250_r8*rxt(105)*y(13) + .100_r8*rxt(106)*y(17)
         mat(368) = .250_r8*rxt(116)*y(1)
         mat(349) = .200_r8*rxt(147)*y(1)
         mat(512) = .250_r8*rxt(171)*y(13)
         mat(246) = -(rxt(111)*y(12))
         mat(609) = -rxt(111)*y(26)
         mat(537) = .530_r8*rxt(162)*y(55) + .250_r8*rxt(180)*y(61)
         mat(777) = .530_r8*rxt(164)*y(55) + .250_r8*rxt(181)*y(61)
         mat(727) = .260_r8*rxt(166)*y(55) + .100_r8*rxt(183)*y(61)
         mat(807) = .530_r8*rxt(167)*y(55) + .250_r8*rxt(184)*y(61)
         mat(476) = .530_r8*rxt(162)*y(5) + .530_r8*rxt(164)*y(7) + .260_r8*rxt(166) &
                      *y(17) + .530_r8*rxt(167)*y(31)
         mat(447) = .250_r8*rxt(180)*y(5) + .250_r8*rxt(181)*y(7) + .100_r8*rxt(183) &
                      *y(17) + .250_r8*rxt(184)*y(31)
         mat(21) = -(rxt(95)*y(12))
         mat(568) = -rxt(95)*y(27)
         mat(321) = -(rxt(96)*y(5) + rxt(97)*y(13) + rxt(98)*y(17) + 4._r8*rxt(99) &
                      *y(28))
         mat(543) = -rxt(96)*y(28)
         mat(668) = -rxt(97)*y(28)
         mat(729) = -rxt(98)*y(28)
         mat(616) = rxt(95)*y(27) + .500_r8*rxt(100)*y(29)
         mat(22) = rxt(95)*y(12)
         mat(127) = .500_r8*rxt(100)*y(12)
         mat(126) = -(rxt(100)*y(12))
         mat(589) = -rxt(100)*y(29)
         mat(649) = rxt(97)*y(28)
         mat(319) = rxt(97)*y(13)
         mat(383) = -(rxt(101)*y(12) + rxt(102)*y(7))
         mat(621) = -rxt(101)*y(30)
         mat(783) = -rxt(102)*y(30)
         mat(701) = .500_r8*rxt(116)*y(33) + .040_r8*rxt(159)*y(53)
         mat(546) = rxt(96)*y(28) + .270_r8*rxt(122)*y(35) + rxt(118)*y(37) + rxt(136) &
                      *y(43) + .400_r8*rxt(143)*y(48) + rxt(138)*y(45)
         mat(621) = mat(621) + rxt(114)*y(21) + .500_r8*rxt(100)*y(29)
         mat(731) = .800_r8*rxt(98)*y(28)
         mat(81) = rxt(114)*y(12)
         mat(322) = rxt(96)*y(5) + .800_r8*rxt(98)*y(17) + 3.200_r8*rxt(99)*y(28)
         mat(128) = .500_r8*rxt(100)*y(12)
         mat(371) = .500_r8*rxt(116)*y(1)
         mat(332) = .270_r8*rxt(122)*y(5)
         mat(280) = rxt(118)*y(5)
         mat(91) = rxt(136)*y(5)
         mat(308) = .400_r8*rxt(143)*y(5)
         mat(272) = rxt(138)*y(5)
         mat(460) = .040_r8*rxt(159)*y(1)
         mat(824) = -(rxt(103)*y(5) + rxt(104)*y(6) + rxt(105)*y(13) + rxt(106)*y(17) &
                      + 4._r8*rxt(110)*y(31) + rxt(153)*y(51) + rxt(167)*y(55) + rxt(184) &
                      *y(61))
         mat(565) = -rxt(103)*y(31)
         mat(769) = -rxt(104)*y(31)
         mat(690) = -rxt(105)*y(31)
         mat(749) = -rxt(106)*y(31)
         mat(510) = -rxt(153)*y(31)
         mat(490) = -rxt(167)*y(31)
         mat(458) = -rxt(184)*y(31)
         mat(565) = mat(565) + rxt(127)*y(40) + rxt(138)*y(45) + .530_r8*rxt(162) &
                      *y(55) + rxt(169)*y(57)
         mat(802) = rxt(102)*y(30) + .530_r8*rxt(164)*y(55) + rxt(170)*y(57) &
                      + rxt(133)*y(60)
         mat(640) = rxt(101)*y(30) + .500_r8*rxt(107)*y(32) + rxt(132)*y(60)
         mat(749) = mat(749) + .300_r8*rxt(129)*y(40) + .260_r8*rxt(166)*y(55) &
                      + rxt(172)*y(57)
         mat(389) = rxt(102)*y(7) + rxt(101)*y(12)
         mat(824) = mat(824) + .530_r8*rxt(167)*y(55)
         mat(167) = .500_r8*rxt(107)*y(12)
         mat(413) = rxt(127)*y(5) + .300_r8*rxt(129)*y(17)
         mat(277) = rxt(138)*y(5)
         mat(490) = mat(490) + .530_r8*rxt(162)*y(5) + .530_r8*rxt(164)*y(7) &
                      + .260_r8*rxt(166)*y(17) + .530_r8*rxt(167)*y(31)
         mat(525) = rxt(169)*y(5) + rxt(170)*y(7) + rxt(172)*y(17) + 4.000_r8*rxt(174) &
                      *y(57)
         mat(435) = rxt(133)*y(7) + rxt(132)*y(12)
         mat(163) = -(rxt(107)*y(12))
         mat(595) = -rxt(107)*y(32)
         mat(653) = .750_r8*rxt(105)*y(31) + .750_r8*rxt(171)*y(57)
         mat(804) = .750_r8*rxt(105)*y(13)
         mat(511) = .750_r8*rxt(171)*y(13)
         mat(370) = -(rxt(115)*y(12) + rxt(116)*y(1) + rxt(117)*y(7))
         mat(620) = -rxt(115)*y(33)
         mat(700) = -rxt(116)*y(33)
         mat(782) = -rxt(117)*y(33)
         mat(700) = mat(700) + .070_r8*rxt(147)*y(50)
         mat(353) = .070_r8*rxt(147)*y(1)
         mat(24) = -(rxt(121)*y(12))
         mat(569) = -rxt(121)*y(34)
         mat(331) = -(rxt(122)*y(5) + rxt(123)*y(13) + rxt(124)*y(17))
         mat(544) = -rxt(122)*y(35)
         mat(669) = -rxt(123)*y(35)
         mat(730) = -rxt(124)*y(35)
         mat(617) = rxt(121)*y(34) + rxt(125)*y(36)
         mat(25) = rxt(121)*y(12)
         mat(118) = rxt(125)*y(12)
         mat(116) = -(rxt(125)*y(12))
         mat(587) = -rxt(125)*y(36)
         mat(647) = rxt(123)*y(35)
         mat(329) = rxt(123)*y(13)
         mat(279) = -(rxt(118)*y(5) + rxt(119)*y(13))
         mat(539) = -rxt(118)*y(37)
         mat(664) = -rxt(119)*y(37)
         mat(613) = rxt(115)*y(33) + .500_r8*rxt(120)*y(38)
         mat(369) = rxt(115)*y(12)
         mat(177) = .500_r8*rxt(120)*y(12)
         mat(176) = -(rxt(120)*y(12))
         mat(598) = -rxt(120)*y(38)
         mat(655) = rxt(119)*y(37)
         mat(278) = rxt(119)*y(13)
         mat(287) = -(rxt(126)*y(12))
         mat(614) = -rxt(126)*y(39)
         mat(540) = .820_r8*rxt(122)*y(35) + .500_r8*rxt(136)*y(43) + .250_r8*rxt(143) &
                      *y(48) + .100_r8*rxt(196)*y(64)
         mat(728) = .820_r8*rxt(124)*y(35)
         mat(330) = .820_r8*rxt(122)*y(5) + .820_r8*rxt(124)*y(17)
         mat(90) = .500_r8*rxt(136)*y(5)
         mat(305) = .250_r8*rxt(143)*y(5)
         mat(391) = .100_r8*rxt(196)*y(5)
         mat(404) = -(rxt(127)*y(5) + rxt(128)*y(13) + rxt(129)*y(17))
         mat(548) = -rxt(127)*y(40)
         mat(673) = -rxt(128)*y(40)
         mat(732) = -rxt(129)*y(40)
         mat(623) = rxt(126)*y(39) + rxt(130)*y(41)
         mat(288) = rxt(126)*y(12)
         mat(85) = rxt(130)*y(12)
         mat(84) = -(rxt(130)*y(12))
         mat(581) = -rxt(130)*y(41)
         mat(643) = rxt(128)*y(40)
         mat(402) = rxt(128)*y(13)
         mat(27) = -(rxt(135)*y(12))
         mat(570) = -rxt(135)*y(42)
         mat(89) = -(rxt(136)*y(5))
         mat(527) = -rxt(136)*y(43)
         mat(582) = rxt(135)*y(42)
         mat(28) = rxt(135)*y(12)
         mat(30) = -(rxt(142)*y(12))
         mat(571) = -rxt(142)*y(47)
         mat(306) = -(rxt(143)*y(5) + rxt(144)*y(13))
         mat(542) = -rxt(143)*y(48)
         mat(667) = -rxt(144)*y(48)
         mat(615) = rxt(142)*y(47) + rxt(145)*y(49)
         mat(31) = rxt(142)*y(12)
         mat(263) = rxt(145)*y(12)
         mat(260) = -(rxt(145)*y(12))
         mat(611) = -rxt(145)*y(49)
         mat(662) = rxt(144)*y(48)
         mat(303) = rxt(144)*y(13)
         mat(171) = -(rxt(137)*y(12))
         mat(597) = -rxt(137)*y(44)
         mat(533) = .750_r8*rxt(143)*y(48)
         mat(302) = .750_r8*rxt(143)*y(5)
         mat(271) = -(rxt(138)*y(5) + rxt(139)*y(13))
         mat(538) = -rxt(138)*y(45)
         mat(663) = -rxt(139)*y(45)
         mat(612) = rxt(137)*y(44) + rxt(140)*y(46)
         mat(172) = rxt(137)*y(12)
         mat(97) = rxt(140)*y(12)
         mat(96) = -(rxt(140)*y(12))
         mat(583) = -rxt(140)*y(46)
         mat(644) = rxt(139)*y(45)
         mat(270) = rxt(139)*y(13)
         mat(352) = -(rxt(146)*y(12) + rxt(147)*y(1) + rxt(154)*y(7))
         mat(619) = -rxt(146)*y(50)
         mat(699) = -rxt(147)*y(50)
         mat(781) = -rxt(154)*y(50)
         mat(501) = -(rxt(148)*y(5) + rxt(149)*y(7) + rxt(150)*y(13) + rxt(152)*y(17) &
                      + rxt(153)*y(31))
         mat(556) = -rxt(148)*y(51)
         mat(793) = -rxt(149)*y(51)
         mat(681) = -rxt(150)*y(51)
         mat(740) = -rxt(152)*y(51)
         mat(815) = -rxt(153)*y(51)
         mat(631) = rxt(146)*y(50) + .200_r8*rxt(151)*y(52)
         mat(358) = rxt(146)*y(12)
         mat(238) = .200_r8*rxt(151)*y(12)
         mat(233) = -(rxt(151)*y(12))
         mat(607) = -rxt(151)*y(52)
         mat(661) = rxt(150)*y(51)
         mat(492) = rxt(150)*y(13)
         mat(464) = -(rxt(158)*y(12) + rxt(159)*y(1))
         mat(629) = -rxt(158)*y(53)
         mat(709) = -rxt(159)*y(53)
         mat(709) = mat(709) + .200_r8*rxt(147)*y(50) + rxt(194)*y(63)
         mat(554) = .320_r8*rxt(148)*y(51) + rxt(196)*y(64) + .039_r8*rxt(155)*y(76)
         mat(791) = .350_r8*rxt(149)*y(51) + .039_r8*rxt(156)*y(76)
         mat(679) = .039_r8*rxt(157)*y(76)
         mat(738) = .260_r8*rxt(152)*y(51)
         mat(813) = .350_r8*rxt(153)*y(51)
         mat(357) = .200_r8*rxt(147)*y(1)
         mat(499) = .320_r8*rxt(148)*y(5) + .350_r8*rxt(149)*y(7) + .260_r8*rxt(152) &
                      *y(17) + .350_r8*rxt(153)*y(31)
         mat(253) = rxt(194)*y(1)
         mat(395) = rxt(196)*y(5)
         mat(296) = .039_r8*rxt(155)*y(5) + .039_r8*rxt(156)*y(7) + .039_r8*rxt(157) &
                      *y(13)
         mat(420) = -(rxt(160)*y(12) + rxt(161)*y(1))
         mat(625) = -rxt(160)*y(54)
         mat(705) = -rxt(161)*y(54)
         mat(705) = mat(705) + .400_r8*rxt(147)*y(50) + rxt(194)*y(63)
         mat(550) = .230_r8*rxt(148)*y(51) + rxt(196)*y(64) + .167_r8*rxt(155)*y(76)
         mat(787) = .250_r8*rxt(149)*y(51) + .167_r8*rxt(156)*y(76)
         mat(675) = .167_r8*rxt(157)*y(76)
         mat(734) = .190_r8*rxt(152)*y(51)
         mat(809) = .250_r8*rxt(153)*y(51)
         mat(354) = .400_r8*rxt(147)*y(1)
         mat(495) = .230_r8*rxt(148)*y(5) + .250_r8*rxt(149)*y(7) + .190_r8*rxt(152) &
                      *y(17) + .250_r8*rxt(153)*y(31)
         mat(252) = rxt(194)*y(1)
         mat(394) = rxt(196)*y(5)
         mat(294) = .167_r8*rxt(155)*y(5) + .167_r8*rxt(156)*y(7) + .167_r8*rxt(157) &
                      *y(13)
      end subroutine nlnmat03
      subroutine nlnmat04( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(482) = -((rxt(162) + rxt(163)) * y(5) + rxt(164)*y(7) + rxt(165)*y(13) &
                      + rxt(166)*y(17) + rxt(167)*y(31))
         mat(555) = -(rxt(162) + rxt(163)) * y(55)
         mat(792) = -rxt(164)*y(55)
         mat(680) = -rxt(165)*y(55)
         mat(739) = -rxt(166)*y(55)
         mat(814) = -rxt(167)*y(55)
         mat(630) = rxt(158)*y(53) + .500_r8*rxt(160)*y(54) + .200_r8*rxt(168)*y(56)
         mat(465) = rxt(158)*y(12)
         mat(423) = .500_r8*rxt(160)*y(12)
         mat(102) = .200_r8*rxt(168)*y(12)
         mat(101) = -(rxt(168)*y(12))
         mat(584) = -rxt(168)*y(56)
         mat(645) = rxt(165)*y(55)
         mat(474) = rxt(165)*y(13)
         mat(517) = -(rxt(169)*y(5) + rxt(170)*y(7) + rxt(171)*y(13) + rxt(172)*y(17) &
                      + rxt(173)*y(31) + 4._r8*rxt(174)*y(57) + rxt(175)*y(6))
         mat(557) = -rxt(169)*y(57)
         mat(794) = -rxt(170)*y(57)
         mat(682) = -rxt(171)*y(57)
         mat(741) = -rxt(172)*y(57)
         mat(816) = -rxt(173)*y(57)
         mat(761) = -rxt(175)*y(57)
         mat(712) = .200_r8*rxt(147)*y(50)
         mat(632) = .500_r8*rxt(160)*y(54) + .500_r8*rxt(168)*y(56)
         mat(359) = .200_r8*rxt(147)*y(1)
         mat(424) = .500_r8*rxt(160)*y(12)
         mat(103) = .500_r8*rxt(168)*y(12)
         mat(136) = -(rxt(179)*y(12))
         mat(591) = -rxt(179)*y(58)
         mat(529) = .370_r8*rxt(148)*y(51)
         mat(773) = .400_r8*rxt(149)*y(51) + rxt(178)*y(77)
         mat(591) = mat(591) + rxt(177)*y(77)
         mat(723) = .300_r8*rxt(152)*y(51)
         mat(803) = .400_r8*rxt(153)*y(51)
         mat(491) = .370_r8*rxt(148)*y(5) + .400_r8*rxt(149)*y(7) + .300_r8*rxt(152) &
                      *y(17) + .400_r8*rxt(153)*y(31)
         mat(341) = rxt(178)*y(7) + rxt(177)*y(12)
         mat(414) = -(rxt(134)*y(12))
         mat(624) = -rxt(134)*y(59)
         mat(549) = .220_r8*rxt(162)*y(55) + .250_r8*rxt(180)*y(61)
         mat(786) = .220_r8*rxt(164)*y(55) + .250_r8*rxt(181)*y(61)
         mat(624) = mat(624) + .500_r8*rxt(120)*y(38) + .500_r8*rxt(141)*y(75)
         mat(733) = .200_r8*rxt(129)*y(40) + .230_r8*rxt(166)*y(55) + .100_r8*rxt(183) &
                      *y(61)
         mat(808) = .220_r8*rxt(167)*y(55) + .250_r8*rxt(184)*y(61)
         mat(179) = .500_r8*rxt(120)*y(12)
         mat(405) = .200_r8*rxt(129)*y(17)
         mat(478) = .220_r8*rxt(162)*y(5) + .220_r8*rxt(164)*y(7) + .230_r8*rxt(166) &
                      *y(17) + .220_r8*rxt(167)*y(31)
         mat(448) = .250_r8*rxt(180)*y(5) + .250_r8*rxt(181)*y(7) + .100_r8*rxt(183) &
                      *y(17) + .250_r8*rxt(184)*y(31)
         mat(226) = .500_r8*rxt(141)*y(12)
         mat(430) = -(rxt(132)*y(12) + rxt(133)*y(7))
         mat(626) = -rxt(132)*y(60)
         mat(788) = -rxt(133)*y(60)
         mat(706) = .950_r8*rxt(159)*y(53) + .800_r8*rxt(161)*y(54)
         mat(551) = .250_r8*rxt(162)*y(55) + .250_r8*rxt(180)*y(61) + .450_r8*rxt(190) &
                      *y(68)
         mat(788) = mat(788) + .250_r8*rxt(164)*y(55) + .250_r8*rxt(181)*y(61)
         mat(626) = mat(626) + rxt(134)*y(59) + rxt(131)*y(74)
         mat(735) = .500_r8*rxt(129)*y(40) + .240_r8*rxt(166)*y(55) + .100_r8*rxt(183) &
                      *y(61)
         mat(810) = .250_r8*rxt(167)*y(55) + .250_r8*rxt(184)*y(61)
         mat(406) = .500_r8*rxt(129)*y(17)
         mat(462) = .950_r8*rxt(159)*y(1)
         mat(421) = .800_r8*rxt(161)*y(1)
         mat(479) = .250_r8*rxt(162)*y(5) + .250_r8*rxt(164)*y(7) + .240_r8*rxt(166) &
                      *y(17) + .250_r8*rxt(167)*y(31)
         mat(415) = rxt(134)*y(12)
         mat(449) = .250_r8*rxt(180)*y(5) + .250_r8*rxt(181)*y(7) + .100_r8*rxt(183) &
                      *y(17) + .250_r8*rxt(184)*y(31)
         mat(197) = .450_r8*rxt(190)*y(5)
         mat(153) = rxt(131)*y(12)
         mat(451) = -(rxt(180)*y(5) + rxt(181)*y(7) + rxt(182)*y(13) + rxt(183)*y(17) &
                      + rxt(184)*y(31))
         mat(553) = -rxt(180)*y(61)
         mat(790) = -rxt(181)*y(61)
         mat(678) = -rxt(182)*y(61)
         mat(737) = -rxt(183)*y(61)
         mat(812) = -rxt(184)*y(61)
         mat(628) = .800_r8*rxt(151)*y(52) + rxt(179)*y(58) + rxt(185)*y(62)
         mat(236) = .800_r8*rxt(151)*y(12)
         mat(137) = rxt(179)*y(12)
         mat(57) = rxt(185)*y(12)
         mat(56) = -((rxt(185) + rxt(186)) * y(12))
         mat(577) = -(rxt(185) + rxt(186)) * y(62)
         mat(642) = rxt(182)*y(61)
         mat(444) = rxt(182)*y(13)
         mat(250) = -(rxt(193)*y(12) + rxt(194)*y(1) + rxt(195)*y(7))
         mat(610) = -rxt(193)*y(63)
         mat(698) = -rxt(194)*y(63)
         mat(778) = -rxt(195)*y(63)
         mat(392) = -(rxt(196)*y(5) + rxt(197)*y(13))
         mat(547) = -rxt(196)*y(64)
         mat(672) = -rxt(197)*y(64)
         mat(784) = rxt(195)*y(63)
         mat(622) = rxt(193)*y(63) + rxt(198)*y(65)
         mat(251) = rxt(195)*y(7) + rxt(193)*y(12)
         mat(185) = rxt(198)*y(12)
         mat(183) = -(rxt(198)*y(12))
         mat(599) = -rxt(198)*y(65)
         mat(656) = rxt(197)*y(64)
         mat(390) = rxt(197)*y(13)
         mat(36) = -(rxt(187)*y(12))
         mat(573) = -rxt(187)*y(66)
         mat(41) = -(rxt(188)*y(12))
         mat(574) = -rxt(188)*y(67)
         mat(574) = mat(574) + .250_r8*rxt(187)*y(66)
         mat(37) = .250_r8*rxt(187)*y(12)
         mat(195) = -(rxt(190)*y(5) + rxt(191)*y(13))
         mat(535) = -rxt(190)*y(68)
         mat(658) = -rxt(191)*y(68)
         mat(601) = .700_r8*rxt(187)*y(66) + rxt(192)*y(69)
         mat(38) = .700_r8*rxt(187)*y(12)
         mat(148) = rxt(192)*y(12)
         mat(146) = -(rxt(192)*y(12))
         mat(593) = -rxt(192)*y(69)
         mat(651) = rxt(191)*y(68)
         mat(193) = rxt(191)*y(13)
         mat(59) = -(rxt(189)*y(6))
         mat(750) = -rxt(189)*y(70)
         mat(578) = rxt(188)*y(67)
         mat(42) = rxt(188)*y(12)
         mat(536) = .900_r8*rxt(190)*y(68)
         mat(753) = .700_r8*rxt(189)*y(70)
         mat(196) = .900_r8*rxt(190)*y(5)
         mat(60) = .700_r8*rxt(189)*y(6)
         mat(190) = -(rxt(112)*y(12))
         mat(600) = -rxt(112)*y(72)
         mat(534) = .250_r8*rxt(180)*y(61) + .450_r8*rxt(190)*y(68)
         mat(775) = .250_r8*rxt(181)*y(61)
         mat(600) = mat(600) + .200_r8*rxt(111)*y(26) + .650_r8*rxt(89)*y(101)
         mat(725) = .100_r8*rxt(183)*y(61)
         mat(245) = .200_r8*rxt(111)*y(12)
         mat(445) = .250_r8*rxt(180)*y(5) + .250_r8*rxt(181)*y(7) + .100_r8*rxt(183) &
                      *y(17)
         mat(194) = .450_r8*rxt(190)*y(5)
         mat(46) = .650_r8*rxt(89)*y(12)
         mat(208) = -(rxt(108)*y(12))
         mat(603) = -rxt(108)*y(73)
         mat(754) = rxt(104)*y(31)
         mat(806) = rxt(104)*y(6)
         mat(152) = -(rxt(131)*y(12))
         mat(594) = -rxt(131)*y(74)
         mat(531) = .100_r8*rxt(143)*y(48)
         mat(774) = rxt(117)*y(33)
         mat(367) = rxt(117)*y(7)
         mat(301) = .100_r8*rxt(143)*y(5)
         mat(225) = -(rxt(141)*y(12))
         mat(606) = -rxt(141)*y(75)
         mat(757) = rxt(175)*y(57)
         mat(513) = rxt(175)*y(6)
         mat(292) = -(rxt(155)*y(5) + rxt(156)*y(7) + rxt(157)*y(13))
         mat(541) = -rxt(155)*y(76)
         mat(779) = -rxt(156)*y(76)
         mat(666) = -rxt(157)*y(76)
         mat(779) = mat(779) + rxt(154)*y(50)
         mat(350) = rxt(154)*y(7)
         mat(342) = -(rxt(177)*y(12) + rxt(178)*y(7))
         mat(618) = -rxt(177)*y(77)
         mat(780) = -rxt(178)*y(77)
         mat(545) = .080_r8*rxt(148)*y(51) + .800_r8*rxt(163)*y(55) + .794_r8*rxt(155) &
                      *y(76)
         mat(780) = mat(780) + .794_r8*rxt(156)*y(76)
         mat(670) = .794_r8*rxt(157)*y(76)
         mat(494) = .080_r8*rxt(148)*y(5)
         mat(477) = .800_r8*rxt(163)*y(5)
         mat(293) = .794_r8*rxt(155)*y(5) + .794_r8*rxt(156)*y(7) + .794_r8*rxt(157) &
                      *y(13)
         mat(34) = -(rxt(204)*y(12))
         mat(572) = -rxt(204)*y(83)
         mat(770) = rxt(207)*y(84)
         mat(572) = mat(572) + (rxt(205)+.500_r8*rxt(206))*y(84)
         mat(74) = rxt(207)*y(7) + (rxt(205)+.500_r8*rxt(206))*y(12)
         mat(75) = -((rxt(205) + rxt(206)) * y(12) + rxt(207)*y(7))
         mat(579) = -(rxt(205) + rxt(206)) * y(84)
         mat(772) = -rxt(207)*y(84)
         mat(566) = rxt(204)*y(83)
         mat(33) = rxt(204)*y(12)
         mat(19) = -(rxt(208)*y(12))
         mat(567) = -rxt(208)*y(86)
         mat(44) = -(rxt(89)*y(12))
         mat(575) = -rxt(89)*y(101)
         mat(113) = -(rxt(84)*y(12))
         mat(586) = -rxt(84)*y(102)
         mat(693) = .500_r8*rxt(91)*y(22)
         mat(528) = rxt(87)*y(103)
         mat(586) = mat(586) + .350_r8*rxt(89)*y(101)
         mat(646) = rxt(88)*y(103)
         mat(107) = .500_r8*rxt(91)*y(1)
         mat(45) = .350_r8*rxt(89)*y(12)
         mat(156) = rxt(87)*y(5) + rxt(88)*y(13)
         mat(157) = -(rxt(87)*y(5) + rxt(88)*y(13))
         mat(532) = -rxt(87)*y(103)
         mat(652) = -rxt(88)*y(103)
         mat(652) = mat(652) + rxt(85)*y(19)
         mat(436) = rxt(85)*y(13)
      end subroutine nlnmat04
      subroutine nlnmat_finit( mat, lmat, dti )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: dti
      real(r8), intent(in) :: lmat(nzcnt)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat( 1) = lmat( 1)
         mat( 2) = lmat( 2)
         mat( 3) = lmat( 3)
         mat( 4) = lmat( 4)
         mat( 5) = lmat( 5)
         mat( 6) = lmat( 6)
         mat( 7) = lmat( 7)
         mat( 8) = lmat( 8)
         mat( 9) = lmat( 9)
         mat( 10) = lmat( 10)
         mat( 11) = lmat( 11)
         mat( 12) = lmat( 12)
         mat( 13) = lmat( 13)
         mat( 14) = lmat( 14)
         mat( 15) = lmat( 15)
         mat( 16) = lmat( 16)
         mat( 17) = lmat( 17)
         mat( 18) = lmat( 18)
         mat( 19) = mat( 19) + lmat( 19)
         mat( 21) = mat( 21) + lmat( 21)
         mat( 24) = mat( 24) + lmat( 24)
         mat( 27) = mat( 27) + lmat( 27)
         mat( 30) = mat( 30) + lmat( 30)
         mat( 34) = mat( 34) + lmat( 34)
         mat( 36) = mat( 36) + lmat( 36)
         mat( 41) = mat( 41) + lmat( 41)
         mat( 44) = mat( 44) + lmat( 44)
         mat( 49) = mat( 49) + lmat( 49)
         mat( 50) = mat( 50) + lmat( 50)
         mat( 52) = lmat( 52)
         mat( 53) = lmat( 53)
         mat( 54) = lmat( 54)
         mat( 55) = lmat( 55)
         mat( 56) = mat( 56) + lmat( 56)
         mat( 58) = mat( 58) + lmat( 58)
         mat( 59) = mat( 59) + lmat( 59)
         mat( 63) = lmat( 63)
         mat( 64) = lmat( 64)
         mat( 65) = lmat( 65)
         mat( 66) = lmat( 66)
         mat( 67) = lmat( 67)
         mat( 68) = lmat( 68)
         mat( 69) = lmat( 69)
         mat( 70) = lmat( 70)
         mat( 71) = lmat( 71)
         mat( 72) = lmat( 72)
         mat( 73) = lmat( 73)
         mat( 75) = mat( 75) + lmat( 75)
         mat( 80) = mat( 80) + lmat( 80)
         mat( 84) = mat( 84) + lmat( 84)
         mat( 86) = lmat( 86)
         mat( 87) = mat( 87) + lmat( 87)
         mat( 88) = lmat( 88)
         mat( 89) = mat( 89) + lmat( 89)
         mat( 96) = mat( 96) + lmat( 96)
         mat( 98) = lmat( 98)
         mat( 99) = mat( 99) + lmat( 99)
         mat( 100) = lmat( 100)
         mat( 101) = mat( 101) + lmat( 101)
         mat( 106) = mat( 106) + lmat( 106)
         mat( 113) = mat( 113) + lmat( 113)
         mat( 116) = mat( 116) + lmat( 116)
         mat( 117) = lmat( 117)
         mat( 119) = mat( 119) + lmat( 119)
         mat( 120) = lmat( 120)
         mat( 121) = mat( 121) + lmat( 121)
         mat( 122) = mat( 122) + lmat( 122)
         mat( 123) = lmat( 123)
         mat( 124) = mat( 124) + lmat( 124)
         mat( 125) = lmat( 125)
         mat( 126) = mat( 126) + lmat( 126)
         mat( 128) = mat( 128) + lmat( 128)
         mat( 129) = mat( 129) + lmat( 129)
         mat( 130) = lmat( 130)
         mat( 131) = mat( 131) + lmat( 131)
         mat( 132) = mat( 132) + lmat( 132)
         mat( 133) = mat( 133) + lmat( 133)
         mat( 134) = lmat( 134)
         mat( 136) = mat( 136) + lmat( 136)
         mat( 140) = mat( 140) + lmat( 140)
         mat( 146) = mat( 146) + lmat( 146)
         mat( 147) = lmat( 147)
         mat( 149) = lmat( 149)
         mat( 150) = lmat( 150)
         mat( 151) = mat( 151) + lmat( 151)
         mat( 152) = mat( 152) + lmat( 152)
         mat( 157) = mat( 157) + lmat( 157)
         mat( 158) = lmat( 158)
         mat( 161) = mat( 161) + lmat( 161)
         mat( 163) = mat( 163) + lmat( 163)
         mat( 165) = mat( 165) + lmat( 165)
         mat( 166) = lmat( 166)
         mat( 168) = mat( 168) + lmat( 168)
         mat( 171) = mat( 171) + lmat( 171)
         mat( 173) = lmat( 173)
         mat( 175) = lmat( 175)
         mat( 176) = mat( 176) + lmat( 176)
         mat( 178) = lmat( 178)
         mat( 180) = lmat( 180)
         mat( 181) = mat( 181) + lmat( 181)
         mat( 182) = lmat( 182)
         mat( 183) = mat( 183) + lmat( 183)
         mat( 184) = lmat( 184)
         mat( 186) = lmat( 186)
         mat( 187) = lmat( 187)
         mat( 188) = mat( 188) + lmat( 188)
         mat( 189) = lmat( 189)
         mat( 190) = mat( 190) + lmat( 190)
         mat( 192) = mat( 192) + lmat( 192)
         mat( 195) = mat( 195) + lmat( 195)
         mat( 202) = lmat( 202)
         mat( 203) = lmat( 203)
         mat( 204) = lmat( 204)
         mat( 206) = lmat( 206)
         mat( 207) = lmat( 207)
         mat( 208) = mat( 208) + lmat( 208)
         mat( 211) = lmat( 211)
         mat( 212) = lmat( 212)
         mat( 213) = mat( 213) + lmat( 213)
         mat( 214) = lmat( 214)
         mat( 215) = mat( 215) + lmat( 215)
         mat( 216) = mat( 216) + lmat( 216)
         mat( 217) = lmat( 217)
         mat( 219) = mat( 219) + lmat( 219)
         mat( 223) = mat( 223) + lmat( 223)
         mat( 225) = mat( 225) + lmat( 225)
         mat( 228) = lmat( 228)
         mat( 231) = lmat( 231)
         mat( 233) = mat( 233) + lmat( 233)
         mat( 234) = lmat( 234)
         mat( 235) = lmat( 235)
         mat( 237) = lmat( 237)
         mat( 240) = lmat( 240)
         mat( 241) = mat( 241) + lmat( 241)
         mat( 246) = mat( 246) + lmat( 246)
         mat( 247) = mat( 247) + lmat( 247)
         mat( 249) = mat( 249) + lmat( 249)
         mat( 250) = mat( 250) + lmat( 250)
         mat( 259) = lmat( 259)
         mat( 260) = mat( 260) + lmat( 260)
         mat( 262) = lmat( 262)
         mat( 265) = lmat( 265)
         mat( 266) = lmat( 266)
         mat( 267) = mat( 267) + lmat( 267)
         mat( 268) = lmat( 268)
         mat( 271) = mat( 271) + lmat( 271)
         mat( 279) = mat( 279) + lmat( 279)
         mat( 287) = mat( 287) + lmat( 287)
         mat( 290) = lmat( 290)
         mat( 291) = lmat( 291)
         mat( 292) = mat( 292) + lmat( 292)
         mat( 306) = mat( 306) + lmat( 306)
         mat( 321) = mat( 321) + lmat( 321)
         mat( 331) = mat( 331) + lmat( 331)
         mat( 342) = mat( 342) + lmat( 342)
         mat( 343) = lmat( 343)
         mat( 346) = mat( 346) + lmat( 346)
         mat( 347) = mat( 347) + lmat( 347)
         mat( 352) = mat( 352) + lmat( 352)
         mat( 370) = mat( 370) + lmat( 370)
         mat( 383) = mat( 383) + lmat( 383)
         mat( 385) = lmat( 385)
         mat( 386) = lmat( 386)
         mat( 392) = mat( 392) + lmat( 392)
         mat( 404) = mat( 404) + lmat( 404)
         mat( 414) = mat( 414) + lmat( 414)
         mat( 416) = lmat( 416)
         mat( 418) = mat( 418) + lmat( 418)
         mat( 419) = lmat( 419)
         mat( 420) = mat( 420) + lmat( 420)
         mat( 422) = mat( 422) + lmat( 422)
         mat( 424) = mat( 424) + lmat( 424)
         mat( 425) = mat( 425) + lmat( 425)
         mat( 426) = mat( 426) + lmat( 426)
         mat( 428) = lmat( 428)
         mat( 430) = mat( 430) + lmat( 430)
         mat( 432) = lmat( 432)
         mat( 435) = mat( 435) + lmat( 435)
         mat( 438) = mat( 438) + lmat( 438)
         mat( 441) = mat( 441) + lmat( 441)
         mat( 451) = mat( 451) + lmat( 451)
         mat( 459) = lmat( 459)
         mat( 464) = mat( 464) + lmat( 464)
         mat( 470) = lmat( 470)
         mat( 473) = lmat( 473)
         mat( 482) = mat( 482) + lmat( 482)
         mat( 501) = mat( 501) + lmat( 501)
         mat( 517) = mat( 517) + lmat( 517)
         mat( 558) = mat( 558) + lmat( 558)
         mat( 634) = mat( 634) + lmat( 634)
         mat( 635) = mat( 635) + lmat( 635)
         mat( 637) = mat( 637) + lmat( 637)
         mat( 641) = mat( 641) + lmat( 641)
         mat( 685) = mat( 685) + lmat( 685)
         mat( 691) = lmat( 691)
         mat( 696) = mat( 696) + lmat( 696)
         mat( 716) = mat( 716) + lmat( 716)
         mat( 746) = mat( 746) + lmat( 746)
         mat( 755) = mat( 755) + lmat( 755)
         mat( 756) = mat( 756) + lmat( 756)
         mat( 762) = mat( 762) + lmat( 762)
         mat( 763) = mat( 763) + lmat( 763)
         mat( 767) = mat( 767) + lmat( 767)
         mat( 776) = mat( 776) + lmat( 776)
         mat( 795) = mat( 795) + lmat( 795)
         mat( 798) = lmat( 798)
         mat( 800) = mat( 800) + lmat( 800)
         mat( 801) = mat( 801) + lmat( 801)
         mat( 824) = mat( 824) + lmat( 824)
         mat( 141) = 0._r8
         mat( 142) = 0._r8
         mat( 144) = 0._r8
         mat( 160) = 0._r8
         mat( 199) = 0._r8
         mat( 205) = 0._r8
         mat( 261) = 0._r8
         mat( 264) = 0._r8
         mat( 269) = 0._r8
         mat( 274) = 0._r8
         mat( 281) = 0._r8
         mat( 284) = 0._r8
         mat( 304) = 0._r8
         mat( 307) = 0._r8
         mat( 309) = 0._r8
         mat( 310) = 0._r8
         mat( 313) = 0._r8
         mat( 315) = 0._r8
         mat( 317) = 0._r8
         mat( 325) = 0._r8
         mat( 333) = 0._r8
         mat( 336) = 0._r8
         mat( 340) = 0._r8
         mat( 344) = 0._r8
         mat( 351) = 0._r8
         mat( 356) = 0._r8
         mat( 360) = 0._r8
         mat( 364) = 0._r8
         mat( 365) = 0._r8
         mat( 372) = 0._r8
         mat( 373) = 0._r8
         mat( 375) = 0._r8
         mat( 380) = 0._r8
         mat( 387) = 0._r8
         mat( 393) = 0._r8
         mat( 397) = 0._r8
         mat( 399) = 0._r8
         mat( 401) = 0._r8
         mat( 409) = 0._r8
         mat( 433) = 0._r8
         mat( 439) = 0._r8
         mat( 442) = 0._r8
         mat( 453) = 0._r8
         mat( 461) = 0._r8
         mat( 466) = 0._r8
         mat( 471) = 0._r8
         mat( 472) = 0._r8
         mat( 481) = 0._r8
         mat( 483) = 0._r8
         mat( 485) = 0._r8
         mat( 496) = 0._r8
         mat( 498) = 0._r8
         mat( 500) = 0._r8
         mat( 502) = 0._r8
         mat( 504) = 0._r8
         mat( 506) = 0._r8
         mat( 514) = 0._r8
         mat( 515) = 0._r8
         mat( 519) = 0._r8
         mat( 602) = 0._r8
         mat( 633) = 0._r8
         mat( 657) = 0._r8
         mat( 659) = 0._r8
         mat( 665) = 0._r8
         mat( 671) = 0._r8
         mat( 674) = 0._r8
         mat( 676) = 0._r8
         mat( 694) = 0._r8
         mat( 697) = 0._r8
         mat( 702) = 0._r8
         mat( 703) = 0._r8
         mat( 704) = 0._r8
         mat( 708) = 0._r8
         mat( 710) = 0._r8
         mat( 711) = 0._r8
         mat( 720) = 0._r8
         mat( 743) = 0._r8
         mat( 745) = 0._r8
         mat( 748) = 0._r8
         mat( 758) = 0._r8
         mat( 759) = 0._r8
         mat( 760) = 0._r8
         mat( 766) = 0._r8
         mat( 785) = 0._r8
         mat( 799) = 0._r8
         mat( 818) = 0._r8
         mat( 823) = 0._r8
         mat( 1) = mat( 1) - dti
         mat( 2) = mat( 2) - dti
         mat( 3) = mat( 3) - dti
         mat( 4) = mat( 4) - dti
         mat( 5) = mat( 5) - dti
         mat( 7) = mat( 7) - dti
         mat( 8) = mat( 8) - dti
         mat( 10) = mat( 10) - dti
         mat( 11) = mat( 11) - dti
         mat( 12) = mat( 12) - dti
         mat( 13) = mat( 13) - dti
         mat( 14) = mat( 14) - dti
         mat( 15) = mat( 15) - dti
         mat( 16) = mat( 16) - dti
         mat( 17) = mat( 17) - dti
         mat( 18) = mat( 18) - dti
         mat( 19) = mat( 19) - dti
         mat( 21) = mat( 21) - dti
         mat( 24) = mat( 24) - dti
         mat( 27) = mat( 27) - dti
         mat( 30) = mat( 30) - dti
         mat( 34) = mat( 34) - dti
         mat( 36) = mat( 36) - dti
         mat( 41) = mat( 41) - dti
         mat( 44) = mat( 44) - dti
         mat( 49) = mat( 49) - dti
         mat( 52) = mat( 52) - dti
         mat( 56) = mat( 56) - dti
         mat( 59) = mat( 59) - dti
         mat( 63) = mat( 63) - dti
         mat( 70) = mat( 70) - dti
         mat( 75) = mat( 75) - dti
         mat( 80) = mat( 80) - dti
         mat( 84) = mat( 84) - dti
         mat( 89) = mat( 89) - dti
         mat( 96) = mat( 96) - dti
         mat( 101) = mat( 101) - dti
         mat( 106) = mat( 106) - dti
         mat( 113) = mat( 113) - dti
         mat( 116) = mat( 116) - dti
         mat( 121) = mat( 121) - dti
         mat( 126) = mat( 126) - dti
         mat( 131) = mat( 131) - dti
         mat( 136) = mat( 136) - dti
         mat( 140) = mat( 140) - dti
         mat( 146) = mat( 146) - dti
         mat( 152) = mat( 152) - dti
         mat( 157) = mat( 157) - dti
         mat( 163) = mat( 163) - dti
         mat( 168) = mat( 168) - dti
         mat( 171) = mat( 171) - dti
         mat( 176) = mat( 176) - dti
         mat( 183) = mat( 183) - dti
         mat( 190) = mat( 190) - dti
         mat( 195) = mat( 195) - dti
         mat( 203) = mat( 203) - dti
         mat( 208) = mat( 208) - dti
         mat( 215) = mat( 215) - dti
         mat( 219) = mat( 219) - dti
         mat( 225) = mat( 225) - dti
         mat( 233) = mat( 233) - dti
         mat( 241) = mat( 241) - dti
         mat( 246) = mat( 246) - dti
         mat( 250) = mat( 250) - dti
         mat( 260) = mat( 260) - dti
         mat( 271) = mat( 271) - dti
         mat( 279) = mat( 279) - dti
         mat( 287) = mat( 287) - dti
         mat( 292) = mat( 292) - dti
         mat( 306) = mat( 306) - dti
         mat( 321) = mat( 321) - dti
         mat( 331) = mat( 331) - dti
         mat( 342) = mat( 342) - dti
         mat( 352) = mat( 352) - dti
         mat( 370) = mat( 370) - dti
         mat( 383) = mat( 383) - dti
         mat( 392) = mat( 392) - dti
         mat( 404) = mat( 404) - dti
         mat( 414) = mat( 414) - dti
         mat( 420) = mat( 420) - dti
         mat( 430) = mat( 430) - dti
         mat( 438) = mat( 438) - dti
         mat( 451) = mat( 451) - dti
         mat( 464) = mat( 464) - dti
         mat( 482) = mat( 482) - dti
         mat( 501) = mat( 501) - dti
         mat( 517) = mat( 517) - dti
         mat( 558) = mat( 558) - dti
         mat( 634) = mat( 634) - dti
         mat( 685) = mat( 685) - dti
         mat( 716) = mat( 716) - dti
         mat( 746) = mat( 746) - dti
         mat( 767) = mat( 767) - dti
         mat( 801) = mat( 801) - dti
         mat( 824) = mat( 824) - dti
      end subroutine nlnmat_finit
      subroutine nlnmat( mat, y, rxt, lmat, dti )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: dti
      real(r8), intent(in) :: lmat(nzcnt)
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
      call nlnmat01( mat, y, rxt )
      call nlnmat02( mat, y, rxt )
      call nlnmat03( mat, y, rxt )
      call nlnmat04( mat, y, rxt )
      call nlnmat_finit( mat, lmat, dti )
      end subroutine nlnmat
      end module mo_nln_matrix
